package com.hnchances.service.impl;

import com.hnchances.common.utils.RedisUtils;
import com.hnchances.service.CodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

/**
 * Description: 发送短信业务类
 */
@Service
public class CodeServiceImpl implements CodeService {
    @Autowired
    private RedisUtils redisUtils;

    /**
     * 发送验证码
     * @param phone
     * @return
     */
    @Override
    public String sendCode(String phone) {
        // 查询redis中的验证码是否过期
        String code = redisUtils.get(phone);
        if (StringUtils.hasText(code)) {
            return "验证码伤未过期，验证码为：" + code;
        }

        code = String.valueOf((int)((Math.random()*9+1)*1000)); // 随机生成4位验证码
        try {
            /**
             * 发送验证码给用户
             * phone 接受验证码的手机号
             * templateCode 短信模板id
             * code 验证码
             */
            // 阿里云申请签名失败
            //   CodeUtils.sendCode(phone, code);
            redisUtils.set(phone, code, 3); // 设置验证码3分钟过期
            return "验证码发送成功：为：" + code;
        } catch (Exception e) {
            e.printStackTrace();
            return "验证码发送失败";
        }
    }

    /**
     * 查询缓存中的验证码
     * @param phone
     * @return
     */
    @Override
    public String getCode(String phone) {
        return redisUtils.get(phone);
    }
}
